
// rust 基本概念

// Rust 的标准库相比其它语言，准入门槛较高，因此有理数和复数并未包含在标准库中
// num 已经开发出高质量的 Rust 数值库: https://crates.io/crates/num
// 需要在Cargo.toml的[dependencies]添加num
use num::complex::Complex;

struct Struct {
    e: i32
}

fn main() {
    println!("Rust基本概念");

    // let 解构
    let (a, b, c, d, e);
    (a, b) = (1, 321);
    [c,..,d, _] = [1, 2, 3, 4, 5]; // _ 表示临时变量
    Struct{e,..} = Struct{e:123};
    println!("a={}, b={}, c={}, d={}, e={}", a,b,c,d,e);

    // .. 系列 []: 整数、字符
    for i in 1..=5 {
        print!("{}, ",i);
    }
    for c in 'a' ..= 'z' {
        print!("{}, ", c);
    }

    // 复数
    {
        let a = Complex{re: 2.1, im: 3.2};
        let b = Complex::new(2.3, 4.5);
        let c = a + b;
        println!("复数：{} + {}i", c.re, c.im);
    }
}